AWS EC2でファイル共有 東京はまだだけど米国サーバーでEFS試してみる
こんにちはいけしまです。前回のブログ更新から5ヶ月もたってしまいました。すみません。またも更新ペース悪すぎで謝ってます。
AWSでサーバー構築時、複数のEC2からどうやってファイル共有するか少し悩みますよね。
選択肢としてすぐに思いつくのは
・データベースにファイル保存
・memcacheにファイル保存
・共有用のEC2サーバーを作成しnfsで共有
・s3にファイル保存
・s3とファイルゲートウェイを組み合わせてnfsで共有
・AWS EFS(Amazon Elastic File System)でnfsで共有
「保存読込のための特別な実装しないでお手軽に共有したい」とか思ったとき、「EFS」使いたいなーと思うんですけど、未だに東京にはこのサービスないんですよね。結構待ってるんですけど。。。
東京でサービス開始になったときのためにバージニア北部のサーバー使って設定だけ練習してみました。
まずはバージニア北部で一番小さいEC2を2台作成しました。接続確認だけなのでインターネットから直接アクセス可能な場所にIP制限だけつけて作成。
アベオラビリティーゾーンは各々「us-east-1a」と「us-east-1c」です。
社内からSSHで問題なく接続できることを確認して、EFSを作成します。
サービスのストレージから「EFS」選んで、
Create file systemで「EFS」を作成します。
設定画面ではVPCとアベイラビチティーゾーン毎のサブネットとセキュリティグループを設定。とりあえず動作確認したいのでこのまま「Next Step」します。
確認画面はそのまま「Create File System」。
EC2から「EFS」にアクセスできるように各EC2のセキュリティグループに「EFS」で指定したセキュリティグループを割り当てます。
各EC2でマウントポイントを作成して「EFS」をマウントします。
sudo mkdir /efs
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-ca735583.efs.us-east-1.amazonaws.com:/ /efs/
web01で/efsにファイルを作成して、web02から見ると見えてますね。
コストを別にすればすばやく共有ディスクが作成できて容量も気にしなくていい、既存のファイル保存ロジックで簡単に共有が開始できていいですね。はやく東京でも利用可能になりますように。